/**
 * 尊敬的用户，你好：页面 JS 面板是高阶用法，一般不建议普通用户使用，如需使用，请确定你具备研发背景，能够自我排查问题。
 * 我们可以用 JS 面板来开发一些定制度高功能，比如：调用API接口，自定义动作执行等等。
 */

// 当页面渲染完毕后马上调用下面的函数，这个函数是在当前页面 - 设置 - 生命周期 - 页面加载完成时中被关联的。
export function didMount() {
    console.log("「页面 JS」：当前页面地址 " + location.href);
}

export function handleRec() {
    const self = this;
    let stateCode = self.$$("detail_field_2yz87r").$$getValue();
    let thirdRecId = self.$$("detail_field_2925e2").$$getValue();
    let uid = self.$$("detail_field_8d8os7").$$getValue();
    let thirdAppCode = self.$$("detail_field_4u00qp").$$getValue();

    startConfirmation(self, uid).then(res => {
        window.parent && window.parent.postMessage({
            type: 'goRoutePage',
            routeName: 'warning-task-detail',
            data: {
                stateCode,
                thirdRecId,
                uid,
                thirdAppCode,
                fromNav: 'Confirm'
            }
        }, '*');
    }).catch(err => {
        console.error("确认过程出错:", err);
        self.$message.error("操作失败: " + (err.message || "未知错误"));
    });
}

function startConfirmation(self, relationUid) {
    return new Promise((resolve, reject) => {
        const jsonParams = {
            "relationUid": relationUid
        };
        api.DATA_SOURCE_EXECUTE("a2b29830-9ef5-437a-8975-476783d4e73f", "api", [], [], JSON.stringify(jsonParams))
            .then((res) => {
                console.log("响应", res);
                if (!res.hasError) {
                    resolve(JSON.parse(res.result));
                } else {
                    self.$message.error(res.message);
                    reject(new Error(res.message));
                }
            })
            .catch(err => {
                console.error("API调用失败:", err);
                self.$message.error(err.message);
                reject(err);
            });
    });
}
